package cn.icanci.ladybird.service.user;

import cn.icanci.ladybird.common.result.JsonData;
import cn.icanci.ladybird.pojo.bo.UserLoginByCodeBO;
import cn.icanci.ladybird.pojo.bo.UserLoginByUsernameAndPasswordBO;
import cn.icanci.ladybird.pojo.bo.UserRegisterBO;
import cn.icanci.ladybird.pojo.bo.UserResetPwdBO;

/**
 * @author: icanci
 * @date: Created in 2020/10/14 13:58
 * @classAction: 处理用户登录注册的接口
 */
public interface UserLoginService {

    /**
     * 处理用户根据账号和密码登录的请求
     *
     * @param userLoginByUsernameAndPasswordBO 登录使用账号密码的BO
     * @return 返回Token
     */
    String queryByUserLoginByUsernameAndPasswordBO(UserLoginByUsernameAndPasswordBO userLoginByUsernameAndPasswordBO);

    /**
     * 用户注册接口
     *
     * @param userRegisterBO 用户注册的BO
     * @return 返回JsonData数据
     */
    JsonData userRegister(UserRegisterBO userRegisterBO);

    /**
     * 用户根据验证码登录的接口
     *
     * @param userLoginByCodeBO 用户验证码登录BO
     * @return 返回登录的结果BO
     */
    JsonData loginByCodeData(UserLoginByCodeBO userLoginByCodeBO);

    /**
     * 用户修改密码
     * @param userResetPwdBO 需要修改的对象
     * @return 返回修修改的结果
     */
    JsonData resetPassword(UserResetPwdBO userResetPwdBO);
}
